/*
 * @Author: bsj
 * @Date: 2024-03-29
 * @LastEditors: baoshijie
 * @LastEditTime: 2024-04-19
 * @Description: file content
 * @FilePath: \bridge_web\src\utils\permission.js
 */
import store from "@/store";
import { goSsoAuthUrl } from "@/api/login";
import { removeToken } from "@/utils/auth";
/**
 * 字符权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkPermi(value) {
  if (value && value instanceof Array && value.length > 0) {
    const permissions = store.getters && store.getters.permissions;
    const permissionDatas = value;
    const all_permission = "*:*:*";

    const hasPermission = permissions.some((permission) => {
      return (
        all_permission === permission || permissionDatas.includes(permission)
      );
    });

    if (!hasPermission) {
      return false;
    }
    return true;
  } else {
    console.error(
      `need roles! Like checkPermi="['system:user:add','system:user:edit']"`
    );
    return false;
  }
}

/**
 * 角色权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkRole(value) {
  if (value && value instanceof Array && value.length > 0) {
    const roles = store.getters && store.getters.roles;
    const permissionRoles = value;
    const super_admin = "admin";

    const hasRole = roles.some((role) => {
      return super_admin === role || permissionRoles.includes(role);
    });

    if (!hasRole) {
      return false;
    }
    return true;
  } else {
    console.error(`need roles! Like checkRole="['admin','editor']"`);
    return false;
  }
}
/**
重定向去 登录页


*/

export function goSsoAuth() {
  localStorage.clear();
  // localStorage.removeItem('satoken')

  let formdata = new FormData();
  formdata.append("clientLoginUrl",window.location.protocol+'//'+ window.location.host +import.meta.env.VITE_APP_BASE_URL);
  goSsoAuthUrl(formdata).then((res) => {
    window.location.href = res.data;
  });
}

export function logout() {
  // localStorage.clear();
  // removeToken();
  let satoken = localStorage.satoken
    // localStorage.setItem('satoken', '')
    localStorage.clear()
    window.location.href = `/bridge/sso/logout?satoken=${satoken}&back=${encodeURIComponent(location.href)}`
}
